home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Essentials / C++ A'Link Files / Feb 91 / CPlus.Dev$ 2⁄22⁄91 / 0275-tes next >
Encoding:
Text File  |  1991-03-06  |  965 b   |  62 lines  |  [TEXT/MPS ]

  1. #include <stream.h>
  2. #include <stdarg.h>
  3.  
  4. //extern void exit(int);
  5.  
  6. void error(const char *fmt ...)
  7. {
  8.     va_list ap;
  9.     va_start(ap, fmt);
  10.     char ch;
  11.     while (ch = *fmt++)
  12.         if (ch != '%')
  13.             cerr.put(ch);
  14.         else
  15.             switch (ch = *fmt++)
  16.                 {
  17.                 case '%':
  18.                     cerr.put('%');
  19.                     break;
  20.                 case 's':
  21.                     {
  22.                     char *s = va_arg(ap, char*);
  23.                     cerr << s;
  24.                     }
  25.                     break;
  26.                 case 'd':
  27.                     {
  28.                     int s = va_arg(ap, int);
  29.                     cerr << s;
  30.                     }
  31.                     break;
  32.                 case 'f':
  33.                     {
  34.                     float s = va_arg(ap, float);
  35.                     cerr << s;
  36.                     }
  37.                     break;
  38.                 case 'c':
  39.                     {
  40.                     int s = va_arg(ap, int);
  41.                     cerr.put(s);
  42.                     }
  43.                     break;
  44.                 default:
  45.                     cerr << "\nunknown % sequence: %" << chr (ch) << "\n";
  46.                     break;
  47.                 }
  48.     va_end(ap);
  49.     //exit(1);
  50. }
  51.  
  52.  
  53. main()
  54. {
  55.     int theInt = 23;
  56.     char theChar = 'A';
  57.     char * str = "words";
  58.     float f1 = 1.01;
  59.     float f2 = 2.02;
  60.     float f3 = 3.03;
  61.     error("Try %d or %c %d %d %d %s end",theInt,theChar,(int)f1,(int)f2,(int)f3,str);
  62. }